Microfrontends på min side
Personalisering med microfrontends.
Microfrontendene brukt på min side kommer i form av små bokser med forskjellig funksjonalitet og innhold teamene ønsker å presentere til en spesifikk gruppe brukere. Det overordnede konseptet er at bruker skal finne igjen mye av sitt mest relevante innhold og av innganger gruppert og løftet på min side.
Vår microfrontendrigg består av tre deler. Mikrofrontenden som lastes opp til frontend-plattform sin CDN, min side som viser microfrontendene, og Kafka-backenden for å aktivere og deaktivere mikrofrontends for spesifikke brukere. Om Kafka ikke er et alternativ for ditt team, finnes det ett regelbasert alternativ som bruker informasjon fra SAF og/eller PDL til å avgjøre hvorvidt en mikrofrontend skal vises. Her er det mulig for ditt team å legge inn forslag til ønsket regel, ta kontakt med team min side for mer info.
Selve mikrofrontenden blir bygget til ESM, lastet opp til CDN og hentes deretter inn som en remote ES-Modul.
Sett opp microfrontend
Bruk denne templaten og følg instruksjonene i readme-filen.
Design
Vi stiller visse designkrav til utformingen av microfrontendene, for å ivareta en god helhetlig brukeropplevelse.
Språk
Alt innhold må være tilgjengelig på bokmål, nynorsk og engelsk. Språkhåndtering har vi allerede satt opp her.
Dependencies
Vi deler noen dependencies på tvers av apper. Per nå er det react og react-dom. DS-css blir også delt og bør ligge på samme major versjon. Veilendende versjon ligger her.
Amplitude
Amplitude fungerer som vanlig (se AAP sin mikrofrontend). Dere kan fritt logge de eventene dere vil, men for at vi skal kunne foreta målinger for Min side som helhet er det påkrevd at trykk på mikrofrontenden sender et navigere event med feltet
komponent: <microfrontendId>
.
Videre anbefaler vi å følge taksonominen i NAV.
Toggle på microfrontend
- Koble på min-side-microfrontend-topicet ("microfrontendId" skal samsvare med navnet på frontendrepoet).
- Du kan nå sende oss Enable/Disable meldinger via Kafka for å skru av og på microfrontenden for spesifikke brukere
Enable/disable
Om en microfrontend vises avhenger av om den er enablet for en gitt bruker. Dette setter du ved å sende en melding på
microfrontend-topicet.
Enable-melding
Enable-melding sender du for å vise microfrontenden til en bruker.
{
"@action": "enable",
"ident": <ident for bruker: fnr/dnr>,
"microfrontend_id": <microfrontendId>,
"sensitivitet": <nivå som kreves for å se innholdet i mikrofrontenden, gyldige verdier: substantial og high>,
"@initiated_by": <ditt-team>
}
Disable-melding
Disable-melding sender du for å slutte å vise microfrontenden til en bruker.
{
"@action": "disable",
"ident": <ident for bruker: fnr/dnr>,
"microfrontend_id": <microfrontendId>,
"@initiated_by":<ditt-team>
}
Meldingsbygger-bibliotek
Det er tilgjengelig på github packages
Hva er sensitivitet?
Feltet sensitivitet
i enablemeldingen korresponderer direkte til
de nye acr-veridene i IDporten token.
- Om informasjonen som vises krever
idporten-loa-high
innlogging skalsensitivitet
settes tilhigh
. - Om informasjonen kan vises uavhengig av innloggingsnivå skal
sensitivitet
settes tilsubstantial
.
Om sensitivitet ikke er spesifisert i kafka-meldingen settes det alltid til high
hos oss.
Om en person logger inn med idporten-loa-substantial
og det finnes mikrofrontender som personen kan se
på idporten-loa-high
vil bruker få beskjed om dette og link til en "stepup"
login. Se også NAIS docs for mer info om acr-verdiene
Plassering
Mikrofrontender fra team plaseres enten under seksjonen "Din oversikt", på toppen under varslene, eller nederst under "Kanskje aktuelt for deg"
Din oversikt
I din oversikt skal bruker få spesifikk informasjon knyttet til hens forhold til NAV. Din oversikt støtter for øyeblikket kun kafkabaserte mikrofrontends.
Produktkort
Produktkort er strengt talt ikke mikrofrontender, men regelbaserte lenker som peker til innloggede produktsider for ett område. Vi anbefaler heller å bruke kafka, siden dette er mer treffsikkert i forhold til brukers situasjon, men hvis kafka ikke er en mulighet kan dette være ett alternativ.
Kanskje aktuelt for deg
Under kanskje aktuelt for deg skal bruker få forslag til annet innhold som kan være relevant for hen, for eksempel andre stønader eller støttetjenester en bruker kan ha rett på gitt at hen har en spesifikk ytelse. Foreløbig er det kun regelbaserte mikrofrontender som vises i den her seksjonen.